/**************************************************************************************
*
*	Copyright (C) 2009 - 2012 Brent Andrew O. Chua - See LICENSE.txt for more info.
*		
*	Filename	-	RenderEntryList.h
*
*	Description -	Container for storing render entries
*
*	Comments	-	
*
*	Modification History:
*			Name			   Date					Description
*			MrCodeSushi	-	07/23/2012	-	Creation of this file
**************************************************************************************/
#ifndef _PSX_RENDER_ENTRY_LIST_H_
#define _PSX_RENDER_ENTRY_LIST_H_

#include "PulseSTD.h"
#include "RenderEntry.h"
#include "Array.h"

namespace Pulse
{

	class RenderEntryList
	{
	public:

		RenderEntryList( void ) { }

		~RenderEntryList( void );

		void ClearRenderEntries( void );

		const SIZE_T GetNumEntries( void ) const { return m_renderEntries.GetSize(); }

		void AddRenderEntry( RenderEntry *pEntry );

		RenderEntry ** GetRenderEntries( void );

	private: 

		// Trilogy of Evil
		RenderEntryList( const RenderEntryList & );

		RenderEntryList & operator = ( const RenderEntryList &rhs );

	private:

		typedef Array<RenderEntry*> Container;

		Container m_renderEntries;

	};
}

#endif /* _PSX_RENDER_ENTRY_LIST_H_ */